﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Entity.Framework;
using Business.Operations;

namespace HPDMAS.UserControls
{
    public partial class KullaniciFizikBilgileri : System.Web.UI.UserControl
    {
        List<KullaniciFizik> kullaniciFizikListesi;
        private KullaniciFizik k;
        public  int kullaniciId;
        /// <summary>
        /// Kontroller
        /// </summary>
        private DropDownList ddlBoy;
        private DropDownList ddlKilo;
        private DropDownList ddlBedenOlcusu;
        private DropDownList ddlAyakkabiNo;
        /// <summary>
        /// Listeler
        /// </summary>
        List<byte> boyListesi;
        List<byte> kiloListesi;
        List<string> bedenOlcusuListesi;
        List<double> ayakkabiNoListesi;
        /// <summary>
        /// Kontrollere karşılık gelen değişkenler
        /// </summary>
        public byte _kullaniciBoy;
        public byte _kullaniciKilo;
        public string _kullaniciBedenOlcusu;
        public decimal _kullaniciAyakkabiNo;


        protected void Page_Load(object sender, EventArgs e)
        {
            GelenIdDegeriIleEntityNesnesiniGetir();
            DetailsViewDoldur();
            DetailsViewIcindekiKontrollerinIdleriniGetir();
        }

        private void DetailsViewIcindekiKontrollerinIdleriniGetir()
        {
            ddlBoy = (DropDownList)this.dvKullaniciFizikBilgileri.FindControl("ddlBoy");
            ddlKilo = (DropDownList)this.dvKullaniciFizikBilgileri.FindControl("ddlKilo");
            ddlBedenOlcusu = (DropDownList)this.dvKullaniciFizikBilgileri.FindControl("ddlBedenOlcusu");
            ddlAyakkabiNo = (DropDownList)this.dvKullaniciFizikBilgileri.FindControl("ddlAyakkabiNo");
        }

        private void GelenIdDegeriIleEntityNesnesiniGetir()
        {
            k = KullaniciFizikOperation.KullaniciFizikGetByKullaniciId(kullaniciId);
        }

        private void DetailsViewDoldur()
        {
            kullaniciFizikListesi = new List<KullaniciFizik>();
            kullaniciFizikListesi.Add(k);
            dvKullaniciFizikBilgileri.DataSource = kullaniciFizikListesi;
            dvKullaniciFizikBilgileri.DataBind();
        }

        protected void dvKullaniciFizikBilgileri_ModeChanging(object sender, DetailsViewModeEventArgs e)
        {
            if (e.NewMode == DetailsViewMode.Edit)
            {
                dvKullaniciFizikBilgileri.ChangeMode(DetailsViewMode.Edit);
            }
            else if (e.NewMode == DetailsViewMode.Insert)
            {
                dvKullaniciFizikBilgileri.ChangeMode(DetailsViewMode.Insert);
            }
            else
            {
                dvKullaniciFizikBilgileri.ChangeMode(DetailsViewMode.ReadOnly);
            }

            DetailsViewBind();
        }

        private void DetailsViewBind()
        {
            dvKullaniciFizikBilgileri.DataBind();
        }

        protected void dvKullaniciFizikBilgileri_DataBound(object sender, EventArgs e)
        {
            if (this.dvKullaniciFizikBilgileri.CurrentMode == DetailsViewMode.Edit)
            {
                ddlBoy = (DropDownList)this.dvKullaniciFizikBilgileri.FindControl("ddlBoy");
                if (ddlBoy != null)
                {
                    ddlBoyDoldur();
                    ddlBoy.SelectedValue = KullaniciFizikOperation.BoyGetByKullaniciId(kullaniciId);
                }

                ddlKilo = (DropDownList)this.dvKullaniciFizikBilgileri.FindControl("ddlKilo");
                if (ddlKilo != null)
                {
                    ddlKiloDoldur();
                    ddlKilo.SelectedValue = KullaniciFizikOperation.KiloGetByKullaniciId(kullaniciId);
                }

                ddlBedenOlcusu = (DropDownList)this.dvKullaniciFizikBilgileri.FindControl("ddlBedenOlcusu");
                if (ddlBedenOlcusu != null)
                {
                    ddlBedenOlcusuDoldur();
                    ddlBedenOlcusu.SelectedValue = KullaniciFizikOperation.BedenOlcusuGetByKullaniciId(kullaniciId);
                }

                ddlAyakkabiNo = (DropDownList)this.dvKullaniciFizikBilgileri.FindControl("ddlAyakkabiNo");
                if (ddlAyakkabiNo != null)
                {
                    ddlAyakkabiNoDoldur();
                    ddlAyakkabiNo.SelectedValue = KullaniciFizikOperation.AyakkabiNoGetByKullaniciId(kullaniciId);
                }

            }
        }

        private void ddlBoyDoldur()
        {
            boyListesi = new List<byte>();
            for (byte i = 150; i <= 200; i++)
            {
                boyListesi.Add(i);
            }
            ddlBoy.DataSource = boyListesi;
            ddlBoy.DataBind();
        }
        private void ddlKiloDoldur()
        {
            kiloListesi = new List<byte>();
            for (byte i = 50; i <= 130; i++)
            {
                kiloListesi.Add(i);
            }
            ddlKilo.DataSource = kiloListesi;
            ddlKilo.DataBind();
        }
        private void ddlBedenOlcusuDoldur()
        {
            bedenOlcusuListesi = new List<string>();
            bedenOlcusuListesi.Add("XS");
            bedenOlcusuListesi.Add("S");
            bedenOlcusuListesi.Add("M");
            bedenOlcusuListesi.Add("L");
            bedenOlcusuListesi.Add("XL");
            bedenOlcusuListesi.Add("XXL");
            ddlBedenOlcusu.DataSource = bedenOlcusuListesi;
            ddlBedenOlcusu.DataBind();
        }
        private void ddlAyakkabiNoDoldur()
        {
            ayakkabiNoListesi = new List<double>();
            for (double i = 35; i <= 47; i = i + 0.5)
            {
                ayakkabiNoListesi.Add(i);
            }
            ddlAyakkabiNo.DataSource = ayakkabiNoListesi;
            ddlAyakkabiNo.DataBind();
        }

        protected void dvKullaniciFizikBilgileri_ItemUpdating(object sender, DetailsViewUpdateEventArgs e)
        {
            KullaniciFizikBilgileriGuncelle();
            DuzenlemeModundanListelemeModunaGeç();
        }

        private void DuzenlemeModundanListelemeModunaGeç()
        {
            dvKullaniciFizikBilgileri.ChangeMode(DetailsViewMode.ReadOnly);
            DetailsViewBind();
        }

        private void KullaniciFizikBilgileriGuncelle()
        {
            _kullaniciBoy = Convert.ToByte(ddlBoy.SelectedItem.Value);
            _kullaniciKilo = Convert.ToByte(ddlKilo.SelectedItem.Value);
            _kullaniciBedenOlcusu = ddlBedenOlcusu.SelectedItem.Value;
            _kullaniciAyakkabiNo = Convert.ToDecimal(ddlAyakkabiNo.SelectedItem.Value);

            k.KullaniciBoy = _kullaniciBoy;
            k.KullaniciKilo = _kullaniciKilo;
            k.KullaniciBedenOlcusu = _kullaniciBedenOlcusu;
            k.KullaniciAyakkabiNo = _kullaniciAyakkabiNo;
            k.DegisiklikTarihi = DateTime.Now;
            KullaniciFizikOperation.KullaniciFizikUpdate(k);
        }


    }
}
